home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 6 / Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso / 034a / twview82.zip / EXAMINE.PAS < prev    next >
Pascal/Delphi Source File  |  1991-02-04  |  3KB  |  131 lines

  1. program InfoViewer;
  2. { written mid december 1990 to date by woody }
  3. { dos version }
  4. uses
  5.   graph, dos;
  6.  
  7. {$I headers.inc}
  8.  
  9. const
  10.   Version  = 'dos 0.82a';
  11.   Credits  = 'Feb 4, 1991 by Robert Weaver';
  12.   XDimMax  = 20;
  13.   YDimMax  = 15;
  14.   maxQueue = 600;
  15.   xoffset  = 10;
  16.   yoffset  = -2;
  17.  
  18. type
  19.   dist = record
  20.            d : integer;
  21.            s : sector;
  22.          end;
  23.   distanceArray = array [ sector ] of dist;
  24.   Queueitem = record dad, son : sector; end;
  25.   Queue = record
  26.             front, rear : 0..maxQueue;
  27.             data        : array [1..maxQueue] of Queueitem;
  28.           end;
  29.   Vertex = record
  30.              sectorNum: integer;  { 0 if not in use }
  31.            end;
  32.   XIndex = 1..XDimMax;
  33.   YIndex = 1..YDimMax;
  34.   Screen = array [XIndex, YIndex ] of Vertex;
  35.   Pair   = record
  36.              visible : boolean;
  37.              row : XIndex;
  38.              col : YIndex;
  39.            end;
  40.   SectorToScreen = array [ sector ] of pair;
  41.  
  42. var {globals}
  43.   space     : TheVoid;
  44.   g         : text;
  45.   filename  : string;
  46.   FuzzyMode,
  47.   BaseChanged,
  48.   quit      : boolean;
  49.   distances : distanceArray;
  50.  
  51. {$I QUEUE.INC }
  52. {$I status.inc }
  53. {$I misc.inc }
  54. {$I GSDATA.INC }
  55. {$I statistc.inc }
  56. {$I viewdos.inc }
  57. {$I textdisp.inc }
  58. {$I portdisp.inc }
  59. {$I pathstuf.inc }
  60. {$I notestuf.inc }
  61. {$I teleport.inc }
  62. {$I editbase.inc }
  63.  
  64. procedure menu;
  65. begin
  66.   writeln('Choose one of ');
  67.   writeln('<A>dd note');
  68.   writeln('<D>ispersion of sectors');
  69.   writeln('<E>dit data base');
  70.   writeln('Closest place to buy <F>ighters, shields, and holds');
  71.   writeln('Note <I>nformation');
  72.   writeln('<L>ength of path between two sectors');
  73.   writeln('<M>ajor Space Lane information');
  74.   writeln('<N>earest port');
  75.   writeln('<P>aired ports');
  76.   writeln('<Q>uit');
  77.   writeln('Nearest <S>ectors');
  78.   writeln('<T>ranswarp menu');
  79.   writeln('Nearest <U>nexplored sectors');
  80.   writeln('<V>iew space in graphic format');
  81.   writeln('e<X>cise note (delete it)');
  82.   writeln;
  83. end; {menu}
  84.  
  85. function choice : char;
  86. var
  87.   ch : char;
  88. begin
  89.   write('[A, D, E, F, L, I, M, N, P, Q, S, T, U, V, X] Your choice?  ');
  90.   readln( ch );
  91.   choice := upcase( ch );
  92. end;
  93.  
  94. begin
  95.   writeln('Tradewars Data Base Viewer: version ', version);
  96.   writeln( credits );
  97.   writeln;
  98.   Quit := false;
  99.   BaseChanged := false;
  100.   GetData( Space );
  101.   menu;
  102.   repeat
  103.     case choice of
  104.     'A' : AddNote( BaseChanged );
  105.     'D' : StellarDispersion;
  106.     'E' : EditMenu( BaseChanged );
  107.     'F' : NearestFighters;
  108.     'I' : NearestStuff( NoteOnly );
  109.     'L' : PathLength;
  110.     'M' : MajorSpaceLanes;
  111.     'N' : NearestStuff( PortOnly );
  112.     'P' : pairPort;
  113.     'Q' : quit := true;
  114.     'S' : NearestStuff( any );
  115.     'T' : TransWarpMenu( BaseChanged );
  116.     'U' : NearestStuff( UnExpOnly );
  117.     'V' : view;
  118.     'X' : RemoveNote( BaseChanged );
  119.     else
  120.       menu;
  121.     end; {case}
  122.   until quit;
  123.   if BaseChanged then
  124.     begin
  125.       write('File name for new data base? ');
  126.       readln( filename );
  127.       assign( g, filename );
  128.       rewrite( g );
  129.       saveData( g, space );
  130.     end;
  131. end.